What is babel-plugin-polyfill-regenerator?
The babel-plugin-polyfill-regenerator package is designed to automatically replace `regeneratorRuntime` references with the corresponding polyfill from the `regenerator-runtime` package. This is particularly useful when using async/await or generator functions in environments that do not natively support these features. By including this plugin in your Babel configuration, you can ensure that your code will run correctly in older browsers or environments without needing to manually import or include the regenerator runtime in your source code.
What are babel-plugin-polyfill-regenerator's main functionalities?
Automatic Polyfill Injection for Async/Await
This feature automatically detects usage of async/await syntax in your JavaScript code and injects the necessary regenerator runtime polyfill to ensure compatibility with environments that do not natively support async/await. This is done without any manual imports or code modifications.
"use strict";\n\nasync function foo() {\n await bar();\n}\n
Automatic Polyfill Injection for Generator Functions
Similar to the async/await feature, this functionality automatically detects the use of generator functions in your code. It then ensures that the necessary regenerator runtime polyfill is included, allowing these functions to work in environments that do not support generators natively.
"use strict";\n\nfunction* myGenerator() {\n yield 1;\n yield 2;\n}\n
Other packages similar to babel-plugin-polyfill-regenerator
@babel/plugin-transform-runtime
This package is part of the Babel ecosystem and offers broader functionality than just regenerator polyfilling. It can transform Babel helpers and regenerator runtime into references from the `@babel/runtime` package, thus reducing code duplication across your output files. It's more comprehensive but also more complex to configure compared to babel-plugin-polyfill-regenerator.
core-js
While not a direct alternative as a Babel plugin, `core-js` is a library that includes polyfills for ECMAScript up to the latest version. It can be used in conjunction with Babel to polyfill features like async/await, Promise, Symbol, and more, including generator functions. It offers a wider range of polyfills compared to babel-plugin-polyfill-regenerator but requires manual configuration and inclusion in your project.
babel-plugin-polyfill-regenerator
Install
Using npm:
npm install --save-dev babel-plugin-polyfill-regenerator
or using yarn:
yarn add babel-plugin-polyfill-regenerator --dev
Usage
Add this plugin to your Babel configuration:
{
"plugins": [["polyfill-regenerator", { "method": "usage-global" }]]
}
This package supports the usage-pure
, usage-global
, and entry-global
methods.
When entry-global
is used, it replaces imports to regenerator-runtime
.